Open Inventor, originally IRIS Inventor, is a C++ object-oriented retained mode 3D graphics toolkit designed by Silicon Graphics to provide a higher layer of programming for OpenGL. Its main goals are better programmer convenience and efficiency. Open Inventor exists as both proprietary software and free and open-source software, subject to the requirements of the GNU Lesser General Public License (LGPL), version 2.1.
The primary objective was to make 3D programming accessible by introducing an object-oriented API, allowing developers to create complex scenes without the intricacies of low-level OpenGL. The toolkit incorporated features like scene graphs, pre-defined shapes, and automatic occlusion culling to streamline scene management. While Open Inventor focused on ease of use, the OpenGL Performer project, spawned from the same context, emphasized performance optimization. The two projects later converged in an attempt to strike a balance between accessibility and performance, culminating in initiatives like Cosmo 3D and OpenGL++. These projects underwent various stages of development and refinement, contributing to the evolution of 3D graphics programming paradigms.
Open Inventor (OI) was written to address this issue, and provide a common base layer to start working with. Objects could be subclassed from a number of pre-rolled shapes like cubes and polygons, and then easily modified into new shapes. The “world” to be drawn was placed in a scene graph run by OI, with the system applying occlusion culling on objects in the graph automatically. OI also included a number of controller objects and systems for applying them to the scene, making common interaction tasks easier. Finally, OI also supplied a common file format for storing “worlds,” and the code to automatically save or load a world from these files. Basic 3D applications could then be written in a few hundred lines under OI, by tying together portions of the toolkit with “glue” code.
On the downside OI tended to be slower than hand-written code, as 3D tasks are notoriously difficult to make perform well without shuffling the data in the scene graph by hand. Another practical problem was that OI could only be used with its own file format, forcing developers to write converters to and from the internal system.
Eventually all of these ideas would come together to create the OpenGL++ effort, along with Intel, IBM and DEC. Essentially a cleaned up and more “open” version of Cosmo 3D, work on Cosmo ended and SGI turned to OpenGL++ full-time. The OpenGL++ effort would drag on and eventually be killed, and SGI then tried again with Microsoft with the similar Fahrenheit project, which also died. In 1994 SGI licensed Open Inventor to two third-party developers, Template Graphics Software (TGS) and Portable Graphics; in 1996 TGS bought Portable Graphics, making them the sole licensee.
The open-source version from SGI is not maintained, and SGI has not indicated a commitment to further develop the library. The open-source release is used in MeVisLab (MeVis Medical Solutions AG and Fraunhofer MEVIS), however, and development of that continues. MeVisLab Thermo Scientific Open Inventor is still being developed, and has added a number of improvements to the original Inventor API for medical imaging, medical image computing, 3D reflection seismology, and petroleum reservoir modeling.
The Open Inventor API is still commonly used for a wide range of scientific and engineering visualization systems around the world for the development of complex 3D application software. TGS was acquired by Mercury Computer Systems in 2004. It became an independent company, Visualization Sciences Group (VSG), in June 2009. In 2012, VSG was acquired by FEI Company. FEI Company was acquired in 2016 by the Thermo Fisher Scientific Materials & Structural Analysis Division, which continues to develop (and support) Open Inventor.
|
|